home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d4 / cribbage.arc / CRIBBAGE.BAS (.txt) next >
Encoding:
GW-BASIC  |  1985-11-17  |  12.6 KB  |  376 lines

  1. 1  COLOR 15,0,0
  2. 100  '     KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE
  3. 110  '     OPEN      CRIBBAGE       OPEN
  4. 120  '     SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD
  5. 130  '
  6. 140  DEFINT C-Z:GOSUB 3490:RANDOMIZE VAL(RIGHT$(TIME$,2)):GOSUB 3640
  7. 150  GOSUB 2590:GOSUB 2650:' --- LOW CARD DEALS FIRST ---
  8. 160  GOSUB 2590:GOSUB 2760:' --- SUFFLE DECK AND DEAL ---
  9. 170  GOSUB 1530:' --- FIND THE FOUR BEST CARDS AND DISCARD OTHERS -
  10. 180  ' --- DISCARD ---
  11. 190  I1=V(B9,5):I2=V(B9,6)
  12. 200  E=7:GOSUB 3280:GOSUB 3080:I3=RR:CL=RR*8+9:RW=7:GOSUB 3180
  13. 210  GOSUB 3100:I4=RR:IF I3=I4 THEN E=10:GOSUB 3280:GOTO 210
  14. 220  ' --- CRIB ---
  15. 230  RW=7:CL=RR*8+9:GOSUB 3180
  16. 240  FOR J=1 TO 4:C(1,J)=M(I1,J):C(2,J)=M(I2,J):C(3,J)=Y(I3,J):C(4,J)=Y(I4,J)
  17. 250  NEXT J
  18. 260  GOSUB 1910:' --- GENERATE THE UP CARD ---
  19. 270  ' --- PLAY OF THE HAND ---
  20. 280  GOSUB 590:LOCATE 5,1:IF M<>0 THEN 300
  21. 290  COLOR 10:PRINT "I SCORE FIRST":X1=2:GOTO 490
  22. 300  COLOR 10:PRINT "YOU SCORE FIRST":X1=1:GOTO 370
  23. 310  LOCATE 22,14:PRINT "CRIB:"
  24. 320  RW=20:FOR I=1 TO 4:CL=I*8+25:CC$=C$(C(I,1)):GOSUB 3010:NEXT I
  25. 330  FOR I=1 TO 4:FOR J=1 TO 4:W(I,J)=C(I,J):NEXT J:NEXT I:C=1
  26. 340  W(5,4)=T9:GOSUB 2020:IF X1=2 THEN X1=3:GOTO 400
  27. 350  LOCATE 22,20:PRINT USING "## PTS";P:S1=S1+P:IF S1>121 THEN 560
  28. 360  GOSUB 540:GOTO 160
  29. 370  K=1:FOR I=1 TO 6:IF I=I3 OR I=I4 THEN 390
  30. 380  FOR J=1 TO 4:W(K,J)=Y(I,J):NEXT J:K=K+1
  31. 390  NEXT I:W(5,4)=T9:C=0:GOSUB 2020:E=13:GOSUB 3280
  32. 400  COLOR 11:LOCATE 12,1:PRINT "POINTS      ":PRINT "            "
  33. 410  LOCATE 12,8
  34. 420  INPUT P9:D=P-P9:IF D>=0 THEN 440
  35. 430  COLOR 12:LOCATE 13,1:PRINT "TRY AGAIN";:GOTO 420
  36. 440  S2=S2+P9:IF S2>=121 THEN 570
  37. 450  IF D=0 THEN  480
  38. 460  COLOR 14:S1=S1+D:LOCATE 13,1:PRINT USING "MUGGINS ##     ";D
  39. 470  IF S1>=121 THEN 560
  40. 480  ON X1 GOTO 490,310,530
  41. 490  FOR K=1 TO 4:L=V(B9,K):FOR J=1 TO 4:W(K,J)=M(L,J):NEXT J,K
  42. 500  COLOR 13:LOCATE 17,10:PRINT "MY CARDS:";
  43. 510  W(5,4)=T9:C=0:GOSUB 2020:S1=S1+P:IF S1>=121 THEN 560
  44. 520  COLOR 14:PRINT USING " ## PTS";P:ON X1 GOTO 310,370
  45. 530  GOSUB 540:GOTO 160
  46. 540  COLOR 11:LOCATE 1,42:PRINT USING "SCORE:  YOU ### PTS";S2
  47. 550  LOCATE 2,50:PRINT USING "IBM ### PTS";S1:RETURN
  48. 560  E=14:GOSUB 3280:GOTO 3270
  49. 570  E=15:GOSUB 3280:GOTO 3270
  50. 580  '
  51. 590  ' --- PLAY OF THE HAND ---
  52. 600  '
  53. 610  E=8:GOSUB 3280:Y5=0:M5=0:C=0:S9=0:G=0
  54. 620  IF M=0 THEN 830
  55. 630  IF Y5<>4 THEN 660
  56. 640  IF M5=4 THEN 1090
  57. 650  GOTO 830
  58. 660  GOSUB 3240
  59. 670  IF C$="GO" THEN 830
  60. 680  FOR C6=1 TO 6:IF C$=D$(C6) THEN 710
  61. 690  NEXT C6
  62. 700  E=9:GOSUB 3280:GOTO 660
  63. 710  IF C6=I3 OR C6=I4 THEN E=1:GOSUB 3280:GOTO 660
  64. 720  IF Y5=0 THEN 750
  65. 730  FOR J=1 TO Y5:IF I(J+10)=C6 THEN E=6:GOSUB 3280:C$="GO"::GOTO 830
  66. 740  NEXT J
  67. 750  IF S9+Y(C6,2)>31 THEN E=3:GOSUB 3280:GOTO 660
  68. 760  S9=S9+Y(C6,2):Y5=Y5+1:I(10+Y5)=C6:C=C+1:J(C)=Y(C6,4)
  69. 770  GOSUB 1310:CC$=C$(Y(C6,1)):CL=RR*8+9
  70. 780  COLOR 14:LOCATE 3,1:PRINT USING "YOU PLAY A \ \  ## SUM  ## PTS";CC$,S9,P
  71. 790  RW=7:GOSUB 3180:RW=10:GOSUB 3010
  72. 800  F=1:S2=S2+P:IF S2>=121 THEN 570
  73. 810  IF S9<>31 THEN 830
  74. 820  F=0:C=0:S9=0:G=0:GOTO 830
  75. 830  E=13:GOSUB 3280:PRINT:IF M5<>4 THEN 900
  76. 840  IF Y5=4 THEN 1090
  77. 850  IF C$<>"GO" THEN 630
  78. 860  IF F=2 THEN 880
  79. 870  E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 570 ELSE 890
  80. 880  E=5:GOSUB 3280:S1=S1+1:IF S1>=121 THEN 560
  81. 890  F=0:C=0:S9=0:GOTO 630
  82. 900  K9=0:P9=0:C9=C:C=C+1:H9=S9:I9=0
  83. 910  I9=I9+1:IF I9>6 THEN 990
  84. 920  I(I9)=0:IF I9=I1 OR I9=I2 THEN 910
  85. 930  IF M5=0 THEN 960
  86. 940  FOR J9=1 TO M5:IF I9=I(20+J9) THEN 910
  87. 950  NEXT J9
  88. 960  IF H9+M(I9,2)>31 THEN 910
  89. 970  K9=K9+1:S9=H9+M(I9,2):J(C)=M(I9,4):GOSUB 1310:IF P9<P THEN P9=P
  90. 980  I(I9)=P:I(K9+30)=I9:GOTO 910
  91. 990  C=C9:S9=H9:IF K9<>0 THEN 1130
  92. 1000  IF C$<>"GO" THEN 1040
  93. 1010  IF G=1 THEN 1050
  94. 1020  E=5:GOSUB 3280
  95. 1030  C=0:S9=0:S1=S1+1:IF S1>=121 THEN 560 ELSE 630
  96. 1040  IF Y5<>4 THEN 1070
  97. 1050  E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 570
  98. 1060  C=0:S9=0:G=0:C$="":GOTO 830
  99. 1070  IF G=1 THEN 630
  100. 1080  E=6:GOSUB 3280:G=1:GOTO 630
  101. 1090  IF F=0 THEN RETURN
  102. 1100  IF F=1 THEN 1120
  103. 1110  E=5:GOSUB 3280:S1=S1+1:IF S1>=121 THEN 560 ELSE RETURN
  104. 1120  E=4:GOSUB 3280:S2=S2+1:IF S2>=121 THEN 560 ELSE RETURN
  105. 1130  C=C+1:M5=M5+1:IF C<>1 THEN 1220
  106. 1140  FOR J9=1 TO 4:I9=V(B9,J9)
  107. 1150  '  --- DON'T PLAY A FIVE FIRST ---
  108. 1160  IF M(I9,2)=5 THEN 1200
  109. 1170  FOR II=1 TO M5-1:IF I9=I(II+20) THEN 1200
  110. 1180  NEXT II
  111. 1190  I(M5+20)=I9:J(C)=M(I9,4):P9=0:S9=M(I9,2):GOTO 1250
  112. 1200  NEXT J9
  113. 1210  L=V(B9,1):GOTO 1190
  114. 1220  FOR J9=1 TO K9:I9=I(J9+30):IF I(I9)=P9 THEN 1240
  115. 1230  NEXT J9
  116. 1240  I(M5+20)=I9:J(C)=M(I9,4):S9=S9+M(I9,2)
  117. 1250  CC$=C$(M(I9,1)):RW=15:CL=M5*8+25:GOSUB 3010
  118. 1260  LOCATE 3,1:PRINT USING "  I PLAY A \ \  ## SUM  ## PTS";CC$,S9,P9
  119. 1270  F=2:S1=S1+P9:IF S1>=121 THEN 560
  120. 1280  IF S9<>31 THEN 1300
  121. 1290  F=0:C=0:S9=0:GOTO 630
  122. 1300  IF C$="GO" THEN 830 ELSE 630
  123. 1310  '  --- CHECK 15 & 31 ---
  124. 1320  P=0:IF C=1 THEN RETURN
  125. 1330  IF S9=15 OR S9=31 THEN P=P+2
  126. 1340  Z=C-2:IF Z<2 THEN Z=2
  127. 1350  FOR I=C TO Z STEP -1
  128. 1360  IF J(I)<>J(I-1) THEN 1420
  129. 1370  ON C-I+1 GOTO 1380,1390,1400
  130. 1380  P=P+2:GOTO 1410
  131. 1390  P=P+4:GOTO 1410
  132. 1400  P=P+6
  133. 1410  NEXT I
  134. 1420  '  --- RUNS ---
  135. 1430  IF C=2 THEN RETURN
  136. 1440  R9=0:FOR I=3 TO C:GOSUB 1460:NEXT I:P=P+R9:RETURN
  137. 1450  '  --- RUNS CHECK ROUTINE ---
  138. 1460  FOR J=1 TO C:J(J+10)=J(C-J+1):NEXT J:K=0
  139. 1470  K=K+1:IF K>I THEN 1510
  140. 1480  FOR L=K+1 TO I:IF J(K+10)<J(L+10) THEN 1500
  141. 1490  X=J(K+10):J(K+10)=J(L+10):J(L+10)=X
  142. 1500  NEXT L:GOTO 1470
  143. 1510  FOR K=1 TO I-1:IF J(K+10)<>J(K+11)-1 THEN RETURN
  144. 1520  NEXT K:R9=I:RETURN
  145. 1530  '  --- FIND THE BEST FOUR CARD HAND ---
  146. 1540  P9=0:FOR Z9=1 TO 15:I1=V(Z9,1):I2=V(Z9,2):I3=V(Z9,3):I4=V(Z9,4)
  147. 1550  FOR J=1 TO 4:W(1,J)=M(I1,J):W(2,J)=M(I2,J):W(3,J)=M(I3,J):W(4,J)=M(I4,J)
  148. 1560  W(5,J)=25:NEXT J
  149. 1570  '  --- EVALUATE THE HAND ---
  150. 1580  C=0:GOSUB 2020:V(Z9,7)=P:IF P9<P THEN P9=P
  151. 1590  NEXT Z9
  152. 1600  '  --- FIND ALL HANDS WITH MAX SCORE P9 ---
  153. 1610  J=0:FOR I=1 TO 15:IF V(I,7)<>P9 THEN 1630
  154. 1620  J=J+1:I(J)=I
  155. 1630  NEXT I:IF J>I THEN 1660
  156. 1640  '  --- THIS IS THE SINGLE BEST HAND ---
  157. 1650  B9=I(1):RETURN
  158. 1660  '  --- NO SINGLE BEST HAND - FIND KEYS CARDS ---
  159. 1670  '  --- CHECK FOR FIVES ---
  160. 1680  C9=5:Z=1:GOTO 1790
  161. 1690  '  --- CHECK FOR EIGHTS ---
  162. 1700  C9=8:Z=2:GOTO 1790
  163. 1710  '  --- CHECK FOR SEVENS ---
  164. 1720  C9=7:Z=3:GOTO 1790
  165. 1730  '  --- CHECK FOR JACKS ---
  166. 1740  C9=11:Z=4:GOTO 1790
  167. 1750  '  --- CHECK FOR ACES ---
  168. 1760  C9=1:Z=5:GOTO 1790
  169. 1770  '  --- RANDOMLY CHOOSES BEST HAND ---
  170. 1780  B9=INT(J*RND(1))+1:B9=I(B9):RETURN
  171. 1790  '  --- BEST HAND HAS MOST OF CARDS "C9" ---
  172. 1800  P9=0:FOR I=1 TO 15:J(I)=0:NEXT I
  173. 1810  FOR I= 1 TO J:FOR K=1 TO 4:L=V(I(I),K):IF M(L,4)<>C9 THEN 1830
  174. 1820  J(I)=J(I)+1
  175. 1830  NEXT K
  176. 1840  IF P9<J(I) THEN P9=J(I)
  177. 1850  NEXT I
  178. 1860  K=0:FOR I=1 TO J:IF J(I)<>P9 THEN 1880
  179. 1870  K=K+1:B9=I(I)
  180. 1880  NEXT I
  181. 1890  IF K<>1 THEN 1900 ELSE RETURN
  182. 1900  ON Z GOTO 1690,1710,1730,1750,1770
  183. 1910  '  --- GENERATES THE UP CARD ---
  184. 1920  U=INT(38*RND)+14:RW=20:CL=1:CC$=C$(D(U,1)):GOSUB 3010
  185. 1930  LOCATE 19,3:PRINT "UP"
  186. 1940  FOR I=1 TO 4:W(5,I)=D(U,I):NEXT I:T9=W(5,4)
  187. 1950  IF W(5,4)<>11 THEN RETURN
  188. 1960  IF M=0 THEN S2=S2+2:GOTO 1980
  189. 1970  S1=S1+2
  190. 1980  LOCATE 4,1:PRINT "2 PTS FOR JACK"
  191. 1990  IF S1>=121 THEN 560
  192. 2000  IF S2>=121 THEN 570
  193. 2010  RETURN
  194. 2020  '  --- SCORE THE FIVE CARD HAND ---
  195. 2030  REM
  196. 2040  REM - CHECK FOR JACK OF SAME SUIT AS UP CARD
  197. 2050  P=0:IF C=1 THEN 2100
  198. 2060  FOR I=1 TO 4:IF W(I,4)<>11 THEN 2090
  199. 2070  IF W(I,3)<>W(5,3) THEN 2090
  200. 2080  P=P+1:GOTO 2100
  201. 2090  NEXT I
  202. 2100  '  --- CHECK FOR A 4 OR 5 CARD FLUSH ---
  203. 2110  FOR I=1 TO 3:IF W(I,3)<>W(I+1,3) THEN 2190
  204. 2120  NEXT I
  205. 2130  '  ---  CRIB SCORES ONLY FOR A 5 CARD FLUSH ---
  206. 2140  IF C<>0 THEN 2170
  207. 2150  P=P+4:IF W(4,3)<>W(5,3) THEN 2190
  208. 2160  P=P+1:GOTO 2190
  209. 2170  IF W(4,3)<>W(5,3) THEN 2190
  210. 2180  P=P+5
  211. 2190  '  --- CHECK 2 CARD SUM OF 15 ---
  212. 2200  FOR I=1 TO 4:FOR J=I+1 TO 5:IF W(I,2)+W(J,2)=15 THEN P=P+2
  213. 2210  NEXT J,I
  214. 2220  '  --- CHECK 3 CARD SUM OF 15 ---
  215. 2230  FOR I=1 TO 3:FOR J=I+1 TO 4:FOR K=J+1 TO 5
  216. 2240  IF W(I,2)+W(J,2)+W(K,2)=15 THEN P=P+2
  217. 2250  NEXT K,J,I
  218. 2260  '  --- CHECK FOR 4 CARD SUM OF 15 --
  219. 2270  FOR I=1 TO 2:FOR J=I+1 TO 3:FOR K=J+1 TO 4:FOR L=K+1 TO 5
  220. 2280  IF W(I,2)+W(J,2)+W(K,2)+W(L,2)=15 THEN P=P+2
  221. 2290  NEXT L,K,J,I
  222. 2300  '  --- CHECK 5 CARD SUM OF 15 ---
  223. 2310  J=0:FOR I=1 TO 5:J=J+W(I,2):NEXT I:IF J=15 THEN P=P+2
  224. 2320  '  --- CHECK FOR PAIRS 2, 3 AND 4 OF A KIND ---
  225. 2330  FOR I=1 TO 13:J(I)=0:NEXT I
  226. 2340  FOR I=1 TO 5:J=W(I,4):J(J)=J(J)+1:NEXT I
  227. 2350  FOR I=1 TO 13:ON J(I)+1 GOTO 2390,2390,2380,2370,2360
  228. 2360  P=P+6
  229. 2370  P=P+4
  230. 2380  P=P+2
  231. 2390  NEXT I
  232. 2400  '  --- SORT HAND TO ASCENDING SEQ ---
  233. 2410  FOR I=1 TO 4:FOR J=I+1 TO 5:IF W(I,4)<W(J,4) THEN 2430
  234. 2420  SWAP W(I,4),W(J,4)
  235. 2430  NEXT J,I
  236. 2440  '  --- CHECK FOR 5 CARD RUN ---
  237. 2450  D=W(1,4)-Q(1,1):FOR I=1 TO 11:FOR J=1 TO 5:Q(I,J)=Q(I,J)+D:NEXT J,I
  238. 2460  FOR I=1 TO 11:FOR J=1 TO 5:IF W(J,4)<>Q(I,J) THEN 2480
  239. 2470  NEXT J:P=P+Q(I,6):RETURN
  240. 2480  NEXT I
  241. 2490  '  --- CHECK FOR A 4 CARD RUN ---
  242. 2500  FOR L=1 TO 2:D=W(L,4)-R(1,1):FOR I=1 TO 4:FOR J=1 TO 4:R(I,J)=R(I,J)+D
  243. 2510  NEXT J,I:FOR I=1 TO 4:FOR K=1 TO 4:IF W(K+L-1,4)<>R(I,K) THEN 2530
  244. 2520  NEXT K:P=P+R(I,5):RETURN
  245. 2530  NEXT I,L
  246. 2540  '  --- CHECK FOR 3 CARD RUN ---
  247. 2550  FOR L=1 TO 3:D=W(L,4)-S(1):FOR I=1 TO 3:S(I)=S(I)+D:NEXT I
  248. 2560  FOR I=1 TO 3:IF W(L+I-1,4)<>S(I) THEN 2580
  249. 2570  NEXT I:P=P+S(4):RETURN
  250. 2580  NEXT L:RETURN
  251. 2590  '  --- SHUFFLE THE DECK ---
  252. 2600  FOR I=1 TO 52:I(I)=0:NEXT I:FOR I=1 TO 52
  253. 2610  J=INT(52*RND)+1:IF I(J)<>0 THEN 2610
  254. 2620  D(I,1)=J:D(I,3)=(J-1)\13+1:D(I,4)=J-D(I,3)*13+13
  255. 2630  Z=D(I,4):IF Z>10 THEN Z=10
  256. 2640  D(I,2)=Z:I(J)=1:NEXT I:RETURN
  257. 2650  '  --- CUT FOR DEAL ---
  258. 2660  COLOR 14:LOCATE 23,28:PRINT "PLEASE CUT FOR DEAL";:INPUT I
  259. 2670  IF I<1 OR I>52 THEN E=12:GOSUB 3280:GOTO 2660
  260. 2680  COLOR 11:I1=D(I,1):LOCATE 6,1:PRINT "YOUR CARD"
  261. 2690  CC$=C$(I1):RW=7:CL=2:GOSUB 3010
  262. 2700  J=INT(52*RND)+1:IF J=I THEN 2700
  263. 2710  COLOR 11:J1=D(J,1):LOCATE 13,2:PRINT "MY CARD"
  264. 2720  CC$=C$(J1):RW=14:CL=2:GOSUB 3010
  265. 2730  IF D(I,4)<D(J,4) THEN M=1:RETURN
  266. 2740  IF D(J,4)<D(I,4) THEN M=0:RETURN
  267. 2750  COLOR 12:PRINT:PRINT"CUT AGAIN":GOTO 2660
  268. 2760  '  --- THE DEAL ---
  269. 2770  E=11:GOSUB 3280:GOSUB 540
  270. 2780  A$=INKEY$:IF A$="" THEN 2780
  271. 2790  IF ASC(A$)=27 THEN CHAIN "MENU"
  272. 2800  CLS:GOSUB 540:E=18:GOSUB 3280:LOCATE 5,42:IF M=0 THEN 2820
  273. 2810  COLOR 14:PRINT "YOUR DEAL AND YOUR CRIB":GOTO 2830
  274. 2820  COLOR 14:PRINT "MY DEAL AND MY CRIB    "
  275. 2830  COLOR 13:M=1-M:Y=1-M:LOCATE 9,1:PRINT "YOUR CARDS:"
  276. 2840  FOR I=1 TO 6:K=2*I-Y:L=2*I-M
  277. 2850  FOR J=1 TO 4:M(I,J)=D(K,J):Y(I,J)=D(L,J):NEXT J
  278. 2860  RW=7:CL=I*8+9:CC$=C$(Y(I,1)):GOSUB 3010:NEXT I:RETURN
  279. 2870  '
  280. 2880  DATA 1,2,3,4,5,6,0,1,2,3,5,4,6,0,1,2,3,6,4,5,0
  281. 2890  DATA 1,2,4,5,3,6,0,1,2,4,6,3,5,0,1,2,5,6,3,4,0
  282. 2900  DATA 1,3,4,5,2,6,0,1,3,4,6,2,5,0,1,3,5,6,2,4,0
  283. 2910  DATA 1,4,5,6,2,3,0,2,3,4,5,1,6,0,2,3,4,6,1,5,0
  284. 2920  DATA 2,3,5,6,1,4,0,2,4,5,6,1,3,0,3,4,5,6,1,2,0
  285. 2930  DATA 1,1,1,2,3,09,1,1,2,2,3,12,1,1,2,3,3,12
  286. 2940  DATA 1,1,2,3,4,08,1,2,2,2,3,09,1,2,2,3,3,12
  287. 2950  DATA 1,2,2,3,4,08,1,2,3,3,3,09,1,2,3,3,4,08
  288. 2960  DATA 1,2,3,4,4,08,1,2,3,4,5,05
  289. 2970  DATA 1,1,2,3,6,1,2,2,3,6,1,2,3,3,6,1,2,3,4,4
  290. 2980  DATA 1,2,3,3
  291. 2990  DATA 1,2,3,4,5,6
  292. 3000  DATA A,2,3,4,5,6,7,8,9,10,J,Q,K
  293. 3010  ' --- DRAW CARD AT LOCATION RW, CL ---
  294. 3020  C$=RIGHT$(CC$,1)+CC$:IF LEN(CC$)=2 THEN C$=" "+C$
  295. 3030  COLOR 0,7:LOCATE RW,CL:PRINT "VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR"
  296. 3040  LOCATE   ,CL:PRINT "CALL";LEFT$(CC$,LEN(CC$)-1);
  297. 3043  IF RIGHT$(CC$,1)=CHR$(3) OR RIGHT$(CC$,1)=CHR$(4) THEN COLOR 12,7
  298. 3045  PRINT RIGHT$(CC$,1);:COLOR 0,7:PRINT SPACE$(5-LEN(CC$));"CALL"
  299. 3050  LOCATE   ,CL:PRINT "CALL     CALL"
  300. 3060  LOCATE   ,CL:PRINT "CALL";
  301. 3062  IF LEFT$(C$,1)=" " THEN PRINT SPACE$(3); ELSE PRINT SPACE$(2);
  302. 3063  IF RIGHT$(C$,1)=CHR$(3) OR RIGHT$(C$,1)=CHR$(4) THEN COLOR 12,7
  303. 3065  PRINT RIGHT$(C$,1);:COLOR 0,7
  304. 3066  IF LEFT$(C$,1)=" " THEN ZZ=3 ELSE ZZ=2
  305. 3067  PRINT MID$(C$,ZZ,LEN(C$)-ZZ);"CALL"
  306. 3070  LOCATE   ,CL:PRINT "CLSSOUNDSOUNDSOUNDSOUNDSOUND'";:LOCATE 1:COLOR 14,0,0:RETURN
  307. 3080  '  --- MOVE CURSOR ---
  308. 3090  BEEP:RR=1
  309. 3100  C$=INKEY$:IF LEN(C$)=2 THEN E=16:GOSUB 3280
  310. 3105  ZZ=SCREEN (9,RR*8+11,1)
  311. 3106  IF ZZ=112 THEN LOCATE 9,RR*8+12:COLOR 0,7:PRINT " ";:COLOR 15,0
  312. 3110  IF C$<>"" THEN IF ASC(C$)=27 THEN CHAIN "MENU"
  313. 3120  IF C$="6" AND RR<6 THEN RR=RR+1:GOTO 3160
  314. 3130  IF C$="4" AND RR>1 THEN RR=RR-1:GOTO 3160
  315. 3140  IF C$="5" THEN RETURN
  316. 3150  IF LEN(C$)=1 AND C$<>"6" AND C$<>"4" THEN E=17:GOSUB 3280
  317. 3160  LOCATE 9,RR*8+12
  318. 3170  COLOR 15:PRINT "<UNK! {FE22}>:FOR J=1 TO 10:NEXT J:LOCATE 9,RR*8+12:COLOR 7:PRINT " ":GOTO 3100
  319. 3180  '  --- REMOVE DISCARDS ---
  320. 3190  LOCATE RW,CL:PRINT "       "
  321. 3200  LOCATE   ,CL:PRINT "       "
  322. 3210  LOCATE   ,CL:PRINT "       "
  323. 3220  LOCATE   ,CL:PRINT "       "
  324. 3230  LOCATE   ,CL:PRINT "       ":RETURN
  325. 3240  '  --- PLAY HAND ---
  326. 3250  GOSUB 3100:IF RR=I4 OR RR=I3 THEN E=6:GOSUB 3280:C$="GO":RETURN
  327. 3260  C$=MID$(STR$(RR),2):RETURN
  328. 3270  A$=INKEY$:IF A$="" THEN 3270 ELSE CHAIN"MENU"
  329. 3280  LOCATE 1:PRINT:IF E=13 THEN FOR I=1 TO 1200:NEXT I
  330. 3290  COLOR 10:LOCATE 25:PRINT SPACE$(79);:LOCATE 25,20
  331. 3300  ON E GOTO 3310,3320,3330,3340,3350,3360,3370,3380,3390,3400,3410,3420,3480,3430,3440,3450,3460,3470
  332. 3310  PRINT "        YOU DISCARDED THAT CARD         ";:GOTO 3480
  333. 3320  PRINT "             ALREADY PLAYED             ";:GOTO 3480
  334. 3330  PRINT "        THAT TOTALS MORE THAN 31        ";:GOTO 3480
  335. 3340  PRINT "    YOU GET ONE POINT FOR LAST CARD     ";:GOTO 3480
  336. 3350  PRINT "     I GET ONE POINT FOR LAST CARD      ";:GOTO 3480
  337. 3360  PRINT "                 - GO -                 ";:GOTO 3480
  338. 3370  PRINT "             YOUR DISCARDS              ";:GOTO 3480
  339. 3380  PRINT "       PLAY THE HAND TO THE BOARD       ";:GOTO 3480
  340. 3390  PRINT "              INVALID PLAY              ";:GOTO 3480
  341. 3400  PRINT "               REALLY NOW               ";:GOTO 3480
  342. 3410  PRINT "    PRESS ANY KEY FOR THE NEXT DEAL     ";:GOTO 3480
  343. 3420  PRINT "      ENTER A NUMBER FROM 1 TO 52       ";:GOTO 3480
  344. 3430  PRINT USING "            I WIN ### TO ###";S1,S2;:GOTO 3480
  345. 3440  PRINT USING "           YOU WIN ### TO ###";S2,S1;:GOTO 3480
  346. 3450  PRINT "     PLEASE PRESS THE NUM LOCK KEY      ";:GOTO 3480
  347. 3460  PRINT "NUMERIC PAD:    4=LEFT  5=SELECT  6=RIGHT";:GOTO 3480
  348. 3470  PRINT "EXAMINE YOUR HAND, WHILE I LOOK AT MINE.";
  349. 3480  LOCATE 1:PRINT:COLOR 7:RETURN
  350. 3490  KEY OFF:WIDTH 80:SCREEN 0,0,1,1:CLS:SCREEN 0,0,0,1:CLS:LOCATE 6,1,0:COLOR 15
  351. 3500  PRINT "               KEYTHEN<0xCB!>THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN<0xCB!>THENCLOSE"
  352. 3510  PRINT "               TOTHENTAB(THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTAB(THENRANDOMIZE"
  353. 3520  PRINT "               OPEN OPEN                                            OPEN OPEN"
  354. 3530  PRINT "               OPEN OPEN ";:COLOR 11:PRINT "                 CRIBBAGE               ";:COLOR 15:PRINT "   OPEN OPEN"
  355. 3540  PRINT "               OPEN OPEN                                            OPEN OPEN"
  356. 3550  PRINT "               OPEN OPEN   COPYRIGHT (C) 1982  BY ENSIGN SOFTWARE   OPEN OPEN"
  357. 3560  PRINT "               OPEN OPEN                                            OPEN OPEN"
  358. 3570  PRINT "               OPEN OPEN";:COLOR 12:PRINT "          2312 N. COLE RD, SUITE E         ";:COLOR 15:PRINT " OPEN OPEN"
  359. 3580  PRINT "               OPEN OPEN";:COLOR 12:PRINT "          BOISE, ID  83704  U.S.A.         ";:COLOR 15:PRINT " OPEN OPEN"
  360. 3590  PRINT "               OPEN OPEN";:COLOR 11:PRINT " DAY (208) 378-8086      EVE (208) 377-1938";:COLOR 15:PRINT " OPEN OPEN"
  361. 3600  PRINT "               OPEN OPEN                                            OPEN OPEN"
  362. 3610  PRINT "               TOTHENTAB(THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTAB(THENRANDOMIZE"
  363. 3620  PRINT "               SCREENTHENLOCATETHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOCATETHENLOAD"
  364. 3625  DEF SEG=0:POKE &H417,PEEK(&H417) OR &H60
  365. 3630  SCREEN 0,0,0,0:RETURN
  366. 3640  DIM D(54,4),C$(52),I(52),W(5,4),M(6,4),Y(6,4),C(4,4)
  367. 3650  DIM D$(6),V(15,7),Q(11,6),R(4,5),S(4),J(52)
  368. 3660  FOR I=1 TO 15:FOR C=1 TO 7:READ V(I,C):NEXT C,I
  369. 3670  FOR I=1 TO 11:FOR C=1 TO 6:READ Q(I,C):NEXT C,I
  370. 3680  FOR I=1 TO 4:FOR C=1 TO 5:READ R(I,C):NEXT C,I
  371. 3690  FOR I=1 TO 4:READ S(I):NEXT I
  372. 3700  FOR I=1 TO 6:READ D$(I):NEXT I
  373. 3710  FOR I=1 TO 13:READ C$:C$(I)=C$+CHR$(6)
  374. 3720  C$(I+13)=C$+CHR$(4):C$(I+26)=C$+CHR$(3):C$(I+39)=C$+CHR$(5):NEXT I
  375. 3730  S1=0:S2=0:RETURN
  376.